using System;
 using System.Collections.Generic;
 using System.Text;
 using System.Data;
 using System.Data.SqlClient;
 using MinhTam.DataAccess.Web;
//───────────────────────────────────────────────────────────────────────────────────────
 namespace MinhTam.Objects
  { 
 public class TUYEN_DUONG:  SQLConnectWeb { 
 public static string sTableName= "TUYEN_DUONG"; 
   public string TUYEN_DUONG_ID;
   public string BEN_DI;
   public string BEN_DEN;
   public string MO_TA;
   #region DataColumn Name ;
 public static  string cl_TUYEN_DUONG_ID="TUYEN_DUONG_ID" ;
 public static  string cl_BEN_DI="BEN_DI" ;
 public static  string cl_BEN_DEN="BEN_DEN" ;
 public static  string cl_MO_TA="MO_TA" ;
 #endregion;
//───────────────────────────────────────────────────────────────────────────────────────
       public TUYEN_DUONG() {}
//───────────────────────────────────────────────────────────────────────────────────────
       public TUYEN_DUONG(
         string sTUYEN_DUONG_ID,
         string sBEN_DI,
         string sBEN_DEN,
         string sMO_TA){
         this.TUYEN_DUONG_ID= sTUYEN_DUONG_ID;
         this.BEN_DI= sBEN_DI;
         this.BEN_DEN= sBEN_DEN;
         this.MO_TA= sMO_TA;
}
//───────────────────────────────────────────────────────────────────────────────────────
       public static TUYEN_DUONG Create_TUYEN_DUONG ( string sTUYEN_DUONG_ID  ){
    DataTable dt=SearchByTUYEN_DUONG_ID(sTUYEN_DUONG_ID) ;
    if(dt!=null && dt.Rows.Count>0) 
      return new TUYEN_DUONG(dt,0);
      return null;
}
//───────────────────────────────────────────────────────────────────────────────────────
   private static string s_Select()
    {
   return " SELECT T.* FROM TUYEN_DUONG AS T";
    }
//───────────────────────────────────────────────────────────────────────────────────────
 public TUYEN_DUONG( DataTable table,int pos)
{
         this.TUYEN_DUONG_ID= table.Rows[pos]["TUYEN_DUONG_ID"].ToString();
         this.BEN_DI= table.Rows[pos]["BEN_DI"].ToString();
         this.BEN_DEN= table.Rows[pos]["BEN_DEN"].ToString();
         this.MO_TA= table.Rows[pos]["MO_TA"].ToString();
}
//───────────────────────────────────────────────────────────────────────────────────────
 public static DataTable SearchByTUYEN_DUONG_ID(string sTUYEN_DUONG_ID)
{
          string sqlSelect= s_Select()+ " WHERE TUYEN_DUONG_ID  ="+ sTUYEN_DUONG_ID + ""; 
          DataTable dt=GetTable(sqlSelect,sTableName) ;
          return dt; 
 }//───────────────────────────────────────────────────────────────────────────────────────
//───────────────────────────────────────────────────────────────────────────────────────
 public static DataTable SearchByTUYEN_DUONG_ID(string sTUYEN_DUONG_ID,string sMatch)
{
          string sqlSelect= s_Select()+ " WHERE TUYEN_DUONG_ID"+ sMatch +sTUYEN_DUONG_ID + ""; 
          DataTable dt=GetTable(sqlSelect,sTableName) ;
          return dt; 
 }//───────────────────────────────────────────────────────────────────────────────────────
 public static DataTable SearchByBEN_DI(string sBEN_DI)
{
          string sqlSelect= s_Select()+ " WHERE BEN_DI  Like N'%"+ sBEN_DI + "%'"; 
          DataTable dt=GetTable(sqlSelect,sTableName) ;
          return dt; 
 }//───────────────────────────────────────────────────────────────────────────────────────
 public static DataTable SearchByBEN_DEN(string sBEN_DEN)
{
          string sqlSelect= s_Select()+ " WHERE BEN_DEN  Like N'%"+ sBEN_DEN + "%'"; 
          DataTable dt=GetTable(sqlSelect,sTableName) ;
          return dt; 
 }//───────────────────────────────────────────────────────────────────────────────────────
 public static DataTable SearchByMO_TA(string sMO_TA)
{
          string sqlSelect= s_Select()+ " WHERE MO_TA  Like '%"+ sMO_TA + "%'"; 
          DataTable dt=GetTable(sqlSelect,sTableName) ;
          return dt; 
 }//───────────────────────────────────────────────────────────────────────────────────────
 public static DataTable Search( string sTUYEN_DUONG_ID
            , string sBEN_DI
            , string sBEN_DEN
            , string sMO_TA
            )
 {
       string sqlselect=s_Select() + " WHERE" ;
      if (sTUYEN_DUONG_ID!=null && sTUYEN_DUONG_ID!="") 
            sqlselect +=" AND TUYEN_DUONG_ID =" + sTUYEN_DUONG_ID ;
      if (sBEN_DI!=null && sBEN_DI!="") 
            sqlselect +=" AND BEN_DI LIKE N'%" + sBEN_DI +"%'" ;
      if (sBEN_DEN!=null && sBEN_DEN!="") 
            sqlselect +=" AND BEN_DEN LIKE N'%" + sBEN_DEN +"%'" ;
      if (sMO_TA!=null && sMO_TA!="") 
            sqlselect +=" AND MO_TA LIKE '%" + sMO_TA +"%'" ;
   sqlselect=sqlselect.Replace("WHERE AND","WHERE");
   int n=sqlselect.IndexOf("WHERE");
   if(n==sqlselect.Length -5) sqlselect=sqlselect.Remove(n,5) ;
   return GetTable(sqlselect,sTableName);
}
//───────────────────────────────────────────────────────────────────────────────────────
 public static TUYEN_DUONG Insert_Object(
string  sBEN_DI
            ,string  sBEN_DEN
            ,string  sMO_TA
            ) 
 { 
              string tem_sBEN_DI=MinhTam.DataAccess.Web.SQLToolWeb.GetSaveValue(sBEN_DI,"nvarchar");
              string tem_sBEN_DEN=MinhTam.DataAccess.Web.SQLToolWeb.GetSaveValue(sBEN_DEN,"nvarchar");
              string tem_sMO_TA=MinhTam.DataAccess.Web.SQLToolWeb.GetSaveValue(sMO_TA,"ntext");

             string sqlSave=" INSERT INTO TUYEN_DUONG("+
                   "BEN_DI," 
        +                   "BEN_DEN," 
        +                   "MO_TA) VALUES("
 +tem_sBEN_DI+","
 +tem_sBEN_DEN+","
 +tem_sMO_TA +")";
             bool OK = Exec(sqlSave)>=1?true:false;
           if (OK) 
           { 
          TUYEN_DUONG newTUYEN_DUONG= new TUYEN_DUONG();
                 newTUYEN_DUONG.TUYEN_DUONG_ID=GetTable( " SELECT TOP 1 TUYEN_DUONG_ID FROM TUYEN_DUONG ORDER BY TUYEN_DUONG_ID DESC ").Rows[0][0].ToString();
              newTUYEN_DUONG.BEN_DI=sBEN_DI;
              newTUYEN_DUONG.BEN_DEN=sBEN_DEN;
              newTUYEN_DUONG.MO_TA=sMO_TA;
            return newTUYEN_DUONG; 
           } 
           else return null ;
}
//───────────────────────────────────────────────────────────────────────────────────────
public bool  Save_Object(string sBEN_DI
                ,string sBEN_DEN
                ,string sMO_TA
                ) 
 { 
              string tem_sBEN_DI=MinhTam.DataAccess.Web.SQLToolWeb.GetSaveValue(sBEN_DI,"nvarchar");
              string tem_sBEN_DEN=MinhTam.DataAccess.Web.SQLToolWeb.GetSaveValue(sBEN_DEN,"nvarchar");
              string tem_sMO_TA=MinhTam.DataAccess.Web.SQLToolWeb.GetSaveValue(sMO_TA,"ntext");

 string sqlSave=" UPDATE TUYEN_DUONG SET "+"BEN_DI ="+tem_sBEN_DI+","
 +"BEN_DEN ="+tem_sBEN_DEN+","
 +"MO_TA ="+tem_sMO_TA+" WHERE TUYEN_DUONG_ID="+MinhTam.DataAccess.Web.SQLToolWeb.GetSaveValue(this.TUYEN_DUONG_ID,"int identity");;
              bool OK = Exec(sqlSave)>=1?true:false;
           if (OK) 
           { 
                this.BEN_DI=sBEN_DI;
                this.BEN_DEN=sBEN_DEN;
                this.MO_TA=sMO_TA;
           } 
 return OK;  }
//───────────────────────────────────────────────────────────────────────────────────────
 #region Update DataColumn  
 public bool Update_TUYEN_DUONG_ID(string sTUYEN_DUONG_ID)
{
    string sqlSave= " UPDATE TUYEN_DUONG SET TUYEN_DUONG_ID='"+ sTUYEN_DUONG_ID+ "' WHERE TUYEN_DUONG_ID='"+ this.TUYEN_DUONG_ID+"' ";
 bool OK=Exec(sqlSave)>=1?true:false;
 if(OK)
 {
    this.TUYEN_DUONG_ID=sTUYEN_DUONG_ID;
 }
 return OK;
}
//───────────────────────────────────────────────────────────────────────────────────────
 public bool Update_BEN_DI(string sBEN_DI)
{
    string sqlSave= " UPDATE TUYEN_DUONG SET BEN_DI='N"+ sBEN_DI+ "' WHERE TUYEN_DUONG_ID='"+ this.TUYEN_DUONG_ID+"' ";
 bool OK=Exec(sqlSave)>=1?true:false;
 if(OK)
 {
    this.BEN_DI=sBEN_DI;
 }
 return OK;
}
//───────────────────────────────────────────────────────────────────────────────────────
 public bool Update_BEN_DEN(string sBEN_DEN)
{
    string sqlSave= " UPDATE TUYEN_DUONG SET BEN_DEN='N"+ sBEN_DEN+ "' WHERE TUYEN_DUONG_ID='"+ this.TUYEN_DUONG_ID+"' ";
 bool OK=Exec(sqlSave)>=1?true:false;
 if(OK)
 {
    this.BEN_DEN=sBEN_DEN;
 }
 return OK;
}
//───────────────────────────────────────────────────────────────────────────────────────
 public bool Update_MO_TA(string sMO_TA)
{
    string sqlSave= " UPDATE TUYEN_DUONG SET MO_TA='"+ sMO_TA+ "' WHERE TUYEN_DUONG_ID='"+ this.TUYEN_DUONG_ID+"' ";
 bool OK=Exec(sqlSave)>=1?true:false;
 if(OK)
 {
    this.MO_TA=sMO_TA;
 }
 return OK;
}
//───────────────────────────────────────────────────────────────────────────────────────
 #endregion
 #region Update DataColumn  Static 
 public static bool Update_BEN_DI(string sBEN_DI,string s_TUYEN_DUONG_ID)
{
  string sqlSave= " UPDATE TUYEN_DUONG SET BEN_DI='N"+sBEN_DI+"' WHERE TUYEN_DUONG_ID='"+ s_TUYEN_DUONG_ID+"' ";
 bool OK=Exec(sqlSave)>=1?true:false;
 return OK;
}
//───────────────────────────────────────────────────────────────────────────────────────
 public static bool Update_BEN_DEN(string sBEN_DEN,string s_TUYEN_DUONG_ID)
{
  string sqlSave= " UPDATE TUYEN_DUONG SET BEN_DEN='N"+sBEN_DEN+"' WHERE TUYEN_DUONG_ID='"+ s_TUYEN_DUONG_ID+"' ";
 bool OK=Exec(sqlSave)>=1?true:false;
 return OK;
}
//───────────────────────────────────────────────────────────────────────────────────────
 public static bool Update_MO_TA(string sMO_TA,string s_TUYEN_DUONG_ID)
{
  string sqlSave= " UPDATE TUYEN_DUONG SET MO_TA='"+sMO_TA+"' WHERE TUYEN_DUONG_ID='"+ s_TUYEN_DUONG_ID+"' ";
 bool OK=Exec(sqlSave)>=1?true:false;
 return OK;
}
//───────────────────────────────────────────────────────────────────────────────────────
#endregion
//───────────────────────────────────────────────────────────────────────────────────────
 public static DataTable GetTableAll() 
 {
       return  GetTableAll(null, null);
 }
public static DataTable GetTableAll(string sWhere, params string[] orderFields)
{
   string sqlSelect = " SELECT * FROM TUYEN_DUONG";
   if (!string.IsNullOrEmpty(sWhere))
      sqlSelect += " where " + sWhere; 
   string order = "";
   if (orderFields != null && orderFields.Length > 0)
     order = string.Join(",", orderFields);
   if (order != "")
      sqlSelect += " ORDER BY " + order;
   return GetTable(sqlSelect,sTableName);
}
//───────────────────────────────────────────────────────────────────────────────────────
//───────────────────────────────────────────────────────────────────────────────────────
public static DataTable GetTableFields(string sWhere, string[] orderFields, params string[] fields)
{
 string field = "";
 if (fields != null && fields.Length > 0)
    field = string.Join(",", fields);
 else field = "*";
 string sqlSelect = string.Format(" SELECT {0} FROM {1} ", field, "TUYEN_DUONG");
 if (!string.IsNullOrEmpty(sWhere))
    sqlSelect += " where " + sWhere;
 string order = "";
 if (orderFields != null && orderFields.Length > 0)
    order = string.Join(",", orderFields);
 if (order != "")
    sqlSelect += " ORDER BY " + order;
 return GetTable(sqlSelect,sTableName);
 }
 public static DataTable GetTableFields(params string[] fields)
 {
    return GetTableFields(null, null, fields);
 }
 public static DataTable GetTableFields(string[] orderFields, params string[] fields)
 {
    return GetTableFields(null, orderFields, fields);
 }
//───────────────────────────────────────────────────────────────────────────────────────
   private static DataTable dt_TUYEN_DUONG;
   public static bool Change_dt_TUYEN_DUONG = true;
   public static bool AllowAutoChange = true;
   public static DataTable get_TUYEN_DUONG()
   {
   if (dt_TUYEN_DUONG == null || Change_dt_TUYEN_DUONG == true)
     {
   dt_TUYEN_DUONG = GetTableAll();
         Change_dt_TUYEN_DUONG = true && AllowAutoChange ;
     }
     return dt_TUYEN_DUONG;
   }
   //───────────────────────────────────────────────────────────────────────────────────────
}  
 } 
